package com.wenson.structural.composite;

import java.util.ArrayList;
import java.util.List;

/**
 * @ClassName: Folder
 * @Author: luowangcheng
 * @Date: 2024/6/13 22:46
 * @Description:
 */
public class Folder extends Node {
    // 文件夹可以包含子节点
    private List<Node> childrenNodes = new ArrayList<>();

    public Folder(String name) {
        super(name); // 调用父类的构造方法
    }

    @Override
    protected void add(Node child) {
        childrenNodes.add(child);
    }

    @Override
    protected void tree(int space) {
        super.tree(space); // 调用父类通用的tree方法列出自己的名字
        space++; // 循环的子节点前，空格数+1
        for (Node node : childrenNodes) {
            node.tree(space); // 调用子节点的tree方法
        }
    }
}
